package Lambda;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * lamda表达式JDK8之后推出的一个新特性
 * 可以用更简洁的语法创建匿名内部类
 */
public class LambdaDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("sda");
        list.add("Fdas");
        list.add("gdasaH");
        list.add("Adasa");
        System.out.println(list);

        //匿名内部类写法:
        Comparator<String> comparator = new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();//比较器的核心逻辑
            }
        };

        //lambda表达式写法:忽略了匿名内部类中实例化接口与重写方法的定义部分
//        Comparator<String> c1 =(o1,o2)->o2.length()-o1.length();
//        Collections.sort(list,c1);

        Collections.sort(list,(o1,o2)->o2.length()-o1.length());
        System.out.println(list);

    }
}
